/***
 * 地址管理js
 * 20151029
 */
$(function() {
	// 渲染页面-通用部分；
	commTemplUtil.initPage();
	// 渲染左侧菜单;
	commTemplUtil.initCommLeftMemu();
	
	var defaultPagingObj = {
			total : 20,
			pageSize : 10,
			page : 1
		};
	PAGE_DATA.pagingObj = $.extend(defaultPagingObj, PAGE_DATA.pagingObj);
	
	//初始地址管理信息
	getClassifyData(1);
	
	//绑定新增地址弹出框add
	initadd();
});


//初始地址管理
function getClassifyData(page){
	
	var onClickObj = {
			onClick : function () {
				var clickPage = $(this).attr("data-page");
				getClassifyData(clickPage);
			}
		};
	
	//页面列表模板
	var templ = _.template($("#item-template").html());

	// 获取地址管理
	$.ajax({
		url : PAGE_CONFIG.requestUrl.queryaddr,
		type : "get",
		data : {
			page : page + "",
			pageSize : PAGE_DATA.pagingObj.pageSize,
		},
		success : function (result) {
			//响应
			setClassifyData(result.data, templ);
			
			//  更新翻页控件
			var tmpConf = $.extend(result.pagingConfData, onClickObj)
				commTemplUtil.initPaging("#comm-paging", tmpConf);
           
		},
		error : function () {
			var conf = {
					title : "注意",
					message : "获取地址信息失败!",
					ok_txt : "确定"
				};
					commTemplUtil.showErrorDialog(conf);
		}
	});
	
}

/**
 * 生成-信息列表,
 */
function setClassifyData(data, templ) {
	var classifyTemplHtml = templ(data);
	$("#commTabs_1_body").html(classifyTemplHtml);
	bindEvents(templ);
};

/***
 * 页面填充数据后, 绑定事件;
 */
function bindEvents(htmlObj) {

	var commBody = $("#commTabs_1_body");
	var classifyTempl = _.template($('#item-template').html());

	// 删除
	commBody.find(".sel-edit-del").on("click", function () {
		
		var addrId = $(this).parents("ul").attr("data-id");
		
		//确认框模板
		var confirmObj1 = _.template($('#item-confirm').html());
		var dia = dialog({
			title: '注意',
			content: confirmObj1
		});
		dia.showModal();
		
		$("#tj").on("click", function(event) {
			$.ajax({
				url: PAGE_CONFIG.requestUrl.deladdr,
				type: "delete",
				data: {
					id: addrId,
					_token: COMM_DATA.csrfToken
				},
				success: function(result) {
					//响应
    				setClassifyData(result.data, classifyTempl);
    				dia.remove();
				},
				error: function() {
					dia.remove();
					
					var conf = {
							title : "注意",
							message : "删除地址信息失败!",
							ok_txt : "确定"
						};
							commTemplUtil.showErrorDialog(conf);
				}
			});
		});
		$(".remove").click(function() {
			dia.remove();
		});
	});

	// 编辑,
	commBody.find(".editor-btn").on("click", function () {
		var addrId = $(this).parents("ul").attr("data-id");
		$.ajax({
			url : PAGE_CONFIG.requestUrl.queryaddrByid,
			type : "get",
			data : {
				id : addrId
			},
			success : function (result) {
				var editaddrTempl = _.template($("#edit_templ").html());
				var editaddrTemplHtml = editaddrTempl(result.data);
				var dia = dialog({
		            width:"550",
		            height:"320",
		            id:"editdialog",
		            title:"编辑地址",
		            content:editaddrTemplHtml,
		            onshow:function(){
						//获取返回值
						var that = result.data;
			        	//渲染省
			        	$.ajax({
			        		url : PAGE_CONFIG.requestUrl.addrProvince,
			        		type : 'get',
			        		dataType : 'json',
			        		success : function (result) {
			        			var datas = $.extend([], result.data);
			        			var tmplObjHtml = areaTemplObj(datas);
			        			$("#province").html(tmplObjHtml);
			        			
			        			//默认选中省份
			        			$("#province").val(that.provid);
			        			//渲染市
			        			$.ajax({
			        				url : PAGE_CONFIG.requestUrl.addrCity,
			        				type : 'post',
			        				dataType : 'json',
			        				data : {
			        					//省份id
			        					code : that.provid,
			        					_token : COMM_DATA.csrfToken
			        				},
			        				success : function (result) {
			        					var datas = $.extend([], result.data);
			        					var tmplObjHtml = areaTemplObj(datas);
			        					$("#city").html(tmplObjHtml);
			        					
			        					//默认选中城市
					        			$("#city").val(that.cityid);
					        			
			        					$("#city").on("change", function () {
			        						var code = $(this).val();
			        						renderAddrCounty(code);
			        					});
			        					
			        					//渲染区
			        					$.ajax({
			        						url : PAGE_CONFIG.requestUrl.addrCounty,
			        						type : 'post',
			        						dataType : 'json',
			        						data : {
			        							//市id
			        							code : that.cityid,
			        							_token : COMM_DATA.csrfToken
			        						},
			        						success : function (result) {
			        							var datas = $.extend([], result.data);
			        							var tmplObjHtml = areaTemplObj(datas);
			        							$("#country").html(tmplObjHtml);
			        							
			        							//默认选中区
							        			$("#country").val(that.areaid);

			        							$("#country").on("change", function () {
			        								var code = $(this).val();
			        							});
			        						},
			        						error : function (xhr, status, error) {
			        							var tmplObjHtml = areaTemplObj([]);
			        							$("#country").html(tmplObjHtml);
			        						}
			        					});
			        					
			        				},
			        				error : function (xhr, status, error) {
			        					var tmplObjHtml = areaTemplObj([]);
			        					$("#city").html(tmplObjHtml);
			        				}
			        			});
			        		},
			        		error : function (xhr, status, error) {
			        			var tmplObjHtml = areaTemplObj([]);
			        			$("#province").html(tmplObjHtml);
			        		}
			        	});
			        	
			        	$("#province").on("change", function () {
			        		var code = $(this).val();
			        		renderAddrCity(code);
			        	});
			        	
			        	// 添加 验证逻辑;
			        	var formValidate = $("#editform").validate({
			        			rules : {
			        				name : "required",
			        				addr : "required",
			        				postnum : "required",
			        				tel : "required"
			        			},
			        			errorPlacement : function (error, element) {
			        				if (element.attr("type") == "text") {
			        					element.after($("<span class='error-line'  align='center'/>").append(error));
			        				}
			        			}
			        		});
			        	
			        	//点击保存
			        	$('#editsub').click(function(){
			        		if(!formValidate.form()){
			        			return false;
			        		}
			        		$("#editform").submit();
			        	});
		        	}
		        });
		        dia.showModal();
			},
			error : function () {
				var conf = {
						title : "注意",
						message : "获取地址信息失败!",
						ok_txt : "确定"
					};
						commTemplUtil.showErrorDialog(conf);
			}
		});
	});
}

//地区下拉框
var areaTemplObj = _.template($('#area-option-templ').html());
//绑定新增地址弹出框add
function initadd(){
	var editor_dialog_templ = _.template($('#classify-templ').html());
	$('#add').click(function(){
        var dia = dialog({
            width:"550",
            height:"320",
            id:"adddialog",
            title:"新增地址",
            content:editor_dialog_templ,
            onshow:function(){
	        	//渲染省
	        	$.ajax({
	        		url : PAGE_CONFIG.requestUrl.addrProvince,
	        		type : 'get',
	        		dataType : 'json',
	        		success : function (result) {
	        			var datas = $.extend([], result.data);
	        			var tmplObjHtml = areaTemplObj(datas);
	        			$("#province").html(tmplObjHtml);
	        		},
	        		error : function (xhr, status, error) {
	        			var tmplObjHtml = areaTemplObj([]);
	        			$("#province").html(tmplObjHtml);
	        		}
	        	});
	
	        	$("#province").on("change", function () {
	        		var code = $(this).val();
	        		renderAddrCity(code);
	        	});
	        	
	        	// 添加 验证逻辑;
	        	var formValidate = $("#addform").validate({
	        			rules : {
	        				name : "required",
	        				addr : "required",
	        				postnum : "required",
	        				tel : "required"
	        			},
	        			errorPlacement : function (error, element) {
	        				if (element.attr("type") == "text") {
	        					element.after($("<span class='error-line'  align='center'/>").append(error));
	        				}
	        			}
	        		});
	        	
	        	//点击保存
	        	$('#save').click(function(){
	        		if(!formValidate.form()){
	        			return false;
	        		}
	        		$("#addform").submit();
	        	});
        	}
        });
        dia.showModal();
    });
	
	
}

//市
function renderAddrCity(provinceCode) {

	// 市
	$.ajax({
		url : PAGE_CONFIG.requestUrl.addrCity,
		type : 'post',
		dataType : 'json',
		data : {
			code : provinceCode,
			_token : COMM_DATA.csrfToken
		},
		success : function (result) {
			var datas = $.extend([], result.data);
			var tmplObjHtml = areaTemplObj(datas);
			$("#city").html(tmplObjHtml);
			$("#city").on("change", function () {
				var code = $(this).val();
				renderAddrCounty(code);
			});
		},
		error : function (xhr, status, error) {
			var tmplObjHtml = areaTemplObj([]);
			$("#city").html(tmplObjHtml);
		}
	});
	
	$("#city").empty().html(areaTemplObj([]));
	$("#country").empty().html(areaTemplObj([]));
};
//区/县
function renderAddrCounty(cityCode) {
	// 区/县
	$.ajax({
		url : PAGE_CONFIG.requestUrl.addrCounty,
		type : 'post',
		dataType : 'json',
		data : {
			code : cityCode,
			_token : COMM_DATA.csrfToken
		},
		success : function (result) {
			var datas = $.extend([], result.data);
			var tmplObjHtml = areaTemplObj(datas);
			$("#country").html(tmplObjHtml);

			$("#country").on("change", function () {
				var code = $(this).val();
			});
		},
		error : function (xhr, status, error) {
			var tmplObjHtml = areaTemplObj([]);
			$("#country").html(tmplObjHtml);
		}
	});
};
